<?php
namespace app\admin\controller;

use app\admin\controller\Base;
use think\Db;
class App extends Base
{
    /**
     * 应用列表
     * @return mixed
     * @throws \think\Exception
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     */
    public function AppList(){
        //总记录条数
        $Count = AppCount();
        $this->assign('Count',$Count);

        //公告列表
        $AppList = AppList();
        $this->assign('AppList',$AppList['AppList']);

        //分页
        $this->assign('Page', $AppList['Page']);

        return $this->fetch('AppList');
    }

    /**
     * 应用添加
     * @return array|mixed
     */
    public function AppAdd(){
        //Post请求操作
        if(IsPost()){
            //请求数据
            $Data = Param();
            $Data['add_time'] = time();
            //向表中添加数据
            if(Db::name('app')->insert($Data)){
                return ['status'=>1,'message'=>'添加成功'];
            }else{
                return ['status'=>0,'message'=>'系统错误，请重试'];
            }
        }
        return $this->fetch('AppAdd');
    }

    /**
     * 应用编辑
     * @return array|mixed
     * @throws \think\Exception
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     * @throws \think\exception\PDOException
     */
    public function AppEdit(){
        $AppInfo = AppInfo(['id'=>Param('id')]);
        //Post请求操作
        if(IsPost()){
            //请求数据
            $Data = Param();
            $Data['add_time'] = time();
            //向表中添加数据
            if(Db::name('app')->update($Data)){
                return ['status'=>1,'message'=>'修改成功'];
            }else{
                return ['status'=>0,'message'=>'系统错误，请重试'];
            }
        }

        $this->assign('AppInfo',$AppInfo);
        return $this->fetch('AppEdit');
    }

    /**
     * 公告删除
     * @return array
     * @throws \think\Exception
     * @throws \think\exception\PDOException
     */
    public function AppDelete(){
        //Post请求操作
        if(IsPost()){
            //删除表中数据
            if(Db::name('app')->where(['id'=>Param('id')])->delete()){
                return ['status'=>1,'message'=>'删除成功'];
            }else{
                return ['status'=>0,'message'=>'系统错误，请重试'];
            }
        }
    }

    /**
     * 多图上传
     */
    public function forUpload()
    {
        // 获取表单上传文件 例如上传了001.jpg
        $file = request()->file('image');

        // 移动到框架应用根目录/public/uploads/ 目录下
        $info = $file->validate(['size'=>1567800000,'ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public' . DS . 'uploads/app');

        if($info){
            //返回上传图片路径
            $path = "/uploads/app/".$info->getSaveName();
            return ['status'=>1,'message'=>$path];
        }else{
            // 上传失败获取错误信息
            return ['status'=>0,'message'=>$file->getError()];
        }
    }
}